#ifndef __IEntity_H__
#define __IEntity_H__

#include "compfwk/compfwk.h"

namespace compfwk
{
    /**
     * \brief Interface that models a entity
     *
     * An entity is described as an aggregation of 
     * components of different functionality
     */
    class IEntity
    {
    public:
        //! Returns the id that identifies in a unique way
        //! each entity
        virtual int GetEntityId( void ) = 0;

        //! Returns a string with the description of the entity
        virtual const CString& GetDescription( void ) = 0;

        //! Returns a string with the type of the entity
        //! The type is defined by the role of 
        //! the entity in the system
        virtual const CString& GetType( void ) = 0;
    };
}
#endif